# xml.etree.ElementTree.parse() 函数解析整个XML 文档并将其转换成一个文档对象。
# 然后，你就能使用find() 、iterfind() 和findtext() 等方法来搜索特定的XML 元素了。
# 这些函数的参数就是某个指定的标签名，例如channel/item 或title。
# 每次指定某个标签时，你需要遍历整个文档结构。每次搜索操作会从一个起始元素开始进行。
# 同样，每次操作所指定的标签名也是起始元素的相对路径。
# 例如，执行doc.iterfind('channel/item') 来搜索所有在channel 元素下面的item 元素。
# doc代表文档的最顶层(也就是第一级的rss 元素)。
# 然后接下来的调用item.findtext()会从已找到的item 元素位置开始搜索。
# ElementTree 模块中的每个元素有一些重要的属性和方法，在解析的时候非常有用。
# tag 属性包含了标签的名字，text 属性包含了内部的文本，而get() 方法能获取属性值。

from xml.etree.ElementTree import parse

doc = parse('rss20.xml')

for item in doc.iterfind('channel/item'):
    title = item.findtext('title')
    date = item.findtext('pubDate')
    link = item.findtext('link')
    print(title)
    print(date)
    print(link)
    print()

e = doc.find('channel/title')
print(e)
print(e.tag)
print(e.text)
print(e.get('a'))
